Several coding and decoding methods exist for the transmission of images. Among the principal types of coding are in particular those such as so-called “intra” coding where an image is coded in an autonomous manner, that is to say without reference to other images, or else so-called “inter” coding which consists in coding a current image with respect to past images so as to express the difference between these images and transmit only this difference.
The methods for coding of the aforementioned type generally comprise a step of predictive coding according to which portions of images, called blocks or macroblocks, of a current image are predicted with respect to other reference blocks or macroblocks, that is to say previously coded and then decoded.
In the case for example of the H264/MPEG-4 AVC (standing for “Advanced Video Coding”) standard, the predictive coding of a macroblock consists in splitting the macroblocks according to a plurality of partitions generally having the shape of blocks of smaller size.
More precisely in the case of the inter coding in accordance with the aforementioned standard, the current macroblock to be coded may be partitioned according to the 16×16, 8×16, 16×8 and 8×8 modes. If the 8×8 mode is selected, each 8×8 block is again partitioned according to the 8×8, 4×8, 8×4 and 4×4 modes. Each current block is compared with one or more blocks respectively of one or more reference images. A motion vector is then obtained which describes the motion between the current block and the reference block having the same position as the current macroblock in the previous image. A predictor of this motion vector is then calculated so as to code the residual between the aforementioned motion vector and the calculated predictor motion vector.
Such a prediction of the motion vector is not suited to all the types of partitioning and in particular in the case where the reference macroblock overlaps several reference partitions of the reference image. Such a situation is represented in FIG. 1A which illustrates the case of a temporal prediction for a current macroblock to be coded, denoted MBCN, of an image N to be coded in accordance with the aforementioned standard. In the example represented, such a macroblock MBCN has a square shape and is of 4×4 type. The macroblock MBCN is surrounded by other macroblocks BR1, BR2, BR3, BR4 which are situated in the neighborhood closest to the latter and which have the same shape and size as those of the macroblock MBCN.
In the example represented, the motion vector of the current macroblock MBCN, denoted MV, points at a reference macroblock MBCN-1 of a reference image, denoted N−1, which is for example the previous image. The reference macroblock MBCN-1 has the same position as the current macroblock MBCN in the previous image N−1. A particular feature of the reference macroblock MBCN-1 is that it overlaps already coded and then decoded reference partitions, denoted BR′1, BR′2, BR′3 and BR′4 in FIG. 1A.
In application of the H264/AVC standard, the aforementioned motion vector MV is predicted spatially only. More precisely, the calculation is undertaken of a reference motion vector which is equal to a median of the motion vectors MV1, MV3, MV4, associated respectively with the reference macroblocks BR1, BR3, BR4. In certain situations, the motion vector MV2, associated with the reference macroblock BR2, may be used in place of one of the vectors MV1, MV3, MV4.
Moreover, new types of partitioning of the current macroblock to be coded have recently appeared, which had not been provided for in the H264/AVC standard. Thus, as represented in FIG. 1B, a current macroblock to be coded MBCN may be split up into several partitions P1 to Pp of linear shape, L-shaped, or else of entirely arbitrary shape.
The H264/AVC standard does not provide for any prediction suited to the various types of partitioning of FIG. 1B and to the particular case where the reference macroblock thus partitioned overlaps several partitions of the reference image. Such a situation is represented in FIG. 1C which illustrates the case of a temporal prediction for a current macroblock to be coded, denoted MBCN, of an image N to be coded in accordance with the aforementioned standard. In the example represented, such a macroblock MBCN is split according to three smaller partitions P1, P2, P3, which are of arbitrary geometric shape.
In the example represented, the motion vector of the first partition P1 of the current macroblock MBCN, denoted MVp1, points at a partition P′1 of a reference macroblock MBCN-1 of a reference image N−1 having the same position as the current macroblock MBCN in the previous image N−1. A particular feature of the reference macroblock MBCN-1 is that it overlaps already coded and then decoded reference partitions, denoted BR′1, BR′2, BR′3 and BR′4 in FIG. 1C.
In application of the H264/AVC standard, to predict the aforementioned motion vector MVp1, the calculation is undertaken of a reference motion vector which is generally equal to a spatial median of the motion vectors MV1, MV3, MV4, associated respectively with the reference macroblocks BR1, BR3, BR4.
Such a spatial prediction of the motion vector may turn out to lack precision having regard to the fact that in the image N−1, there exists a difference in shape and in size between the reference partition P′1 and the reference macroblocks BR′1, BR′2, BR′3 and BR′4.
Other schemes for calculating the predictor motion vector with a view to Inter-coding the partitions of a current macroblock are moreover known.
One of them is described in the publication IEEE Transactions on Circuits and System for Video Technology, Vol. 18, 1247-1257 (September 2008), by G Laroche, J. Jung, and B. Pesquet-Popescu and relates to the cases where, as in the H264/AVC standard, the macroblocks are split according to a plurality of partitions generally having the shape of blocks of smaller size. According to this scheme, the motion vector of a macroblock of a current image is predicted with respect to a reference vector which is chosen as being the vector pointing to the pixel situated at the top and furthest on the left of the macroblock having the same position as the current macroblock in a previous image.
If one attempts to apply the latter scheme to the prediction of the vector MV of FIG. 1A or to that of the vector MVp1 of FIG. 1C, the vectors MV and MVp1 will each be obtained on the basis of a reference motion vector which is equal to the motion vector MV′2 associated with the reference macroblock BR′2, the pixel furthest on the left of the reference macroblock MBCN-1 being situated in the reference macroblock BR′2 with which the motion vector MV′2 is associated.
The motion vector prediction obtained with this scheme also lacks precision for the same reasons as those mentioned above.